package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortPoint {
    public static void main(String[] args) {
        List<Point> list=new ArrayList<>();
        list.add(new Point(1,2));
        list.add(new Point(30,4));
        list.add(new Point(5,63));
        list.add(new Point(27,8));
        System.out.println("list原始数据:"+list);
         /*
              compare()方法用于定义o1和o2比较大小的规则，并且通过返回值来表达大小关系
              返回值实现的要求:----------不用纠结，记住下面的结论即可
                1)如果返回值>0则表达的是o1>o2
                2)如果返回值<0则表达的是o1<o2
                3)如果返回值==0则表达的是o1=o2
              结论:
                1)前面的-后面的-------------升序
                2)后面的-前面的-------------降序
             */
        Collections.sort(list, new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()-o2.getX();//按X升序排序
            }
        });
        //lambda表达式
        Collections.sort(list,(o1, o2)->o1.getX()-o2.getX());
        System.out.println("list排序后数据:"+list);
    }
}
